// 1.0 导包
const http = require('http');
const fs = require('fs');
const path = require('path');

// 2.0 创建服务器对象并且设置好回调函数
let server = http.createServer((req, res) => {

    // 1.0 根据不同路径响应不同的数据内容
    // 如果浏览器请求的是 /index.html 这个路径，那么就读取这个index.html中的内容通过res.end()响应即可
    // 如果浏览器请求的是 /style.css 这个路径，那么久读取style.css通过res.end()响应即可

    // 获取路径
    let urlPath = req.url;
    console.log('urlPath==>', urlPath);
    if (urlPath === '/' || urlPath === '/index.html') {
        // 读取index.html文件的内容响应回去
        let htmlString = fs.readFileSync(path.join(__dirname, 'index.html'), 'utf8');
        // 防止低版本浏览器不能自动解析内容，则手动设置
        res.setHeader('content-type', 'text/html;charset=utf8');
        // res.end() 响应
        res.end(htmlString)
    } else if (urlPath === '/style.css') {  // 读取css文件
        // 读取到了当前目录下的style.css的内容
        let styleString = fs.readFileSync(path.join(__dirname, 'style.css'), 'utf8');
        // 防止低版本浏览器不能自动解析内容，则手动设置
        res.setHeader('content-type', 'text/css;charset=utf8');

        // 响应
        res.end(styleString);

    } else if (urlPath === '/01.png') { // 读取png文件
        // 读取图片内容 ,img 格式：
        let img = fs.readFileSync(path.join(__dirname, '01.png'));
        res.setHeader('content-type', 'image/png');
        // 将img响应回去
        res.end(img);
    }
    else if (urlPath === '/jquery.js') {  // 读取 js文件 （jquery.js）
        let jsString = fs.readFileSync(path.join(__dirname, 'jquery.js'), 'utf8');
        // 表示服务器通过响应报文头content-type告诉浏览器这个响应体中的内容请使用
        // application/javascript格式去解析他，浏览器就会直接执行js代码
        res.setHeader('content-type', 'application/javascript;charset=utf8');
        res.end(jsString)
    }
    else {
        // 资源找不到，状态码应该设置为404，同时响应一段文本告诉用户资源找不到
        res.statusCode = 404;
        res.setHeader('content-type', 'text/html;charset=utf8')
        res.end('您要的资源去了火星，找不到咯');
    }

})

// 3.0 启动服务器
server.listen(8000, () => {
    console.log('服务器已经在8000端口准备就绪，等待客户端访问');
})